#!/bin/bash

# TMS 系统启动脚本

echo "=== TMS 运输管理系统启动脚本 ==="

# 检查依赖
echo "检查系统依赖..."

# 检查 MySQL
if ! command -v mysql &> /dev/null; then
    echo "❌ MySQL 未安装，请先安装 MySQL"
    echo "macOS: brew install mysql"
    exit 1
fi

# 检查 NATS
if ! command -v nats-server &> /dev/null; then
    echo "❌ NATS Server 未安装，请先安装 NATS"
    echo "macOS: brew install nats-server"
    exit 1
fi

# 检查 grpcurl
if ! command -v grpcurl &> /dev/null; then
    echo "❌ grpcurl 未安装，请先安装 grpcurl"
    echo "macOS: brew install grpcurl"
    exit 1
fi

echo "✅ 系统依赖检查完成"

# 启动 MySQL (如果未运行)
echo "检查 MySQL 服务状态..."
if ! pgrep -x "mysqld" > /dev/null; then
    echo "启动 MySQL 服务..."
    brew services start mysql
    sleep 3
fi

# 启动 NATS (如果未运行)
echo "检查 NATS 服务状态..."
if ! pgrep -x "nats-server" > /dev/null; then
    echo "启动 NATS 服务..."
    nats-server --port 4222 &
    NATS_PID=$!
    sleep 2
    echo "NATS Server PID: $NATS_PID"
fi

# 检查数据库连接
echo "检查数据库连接..."
mysql -u root -proot -e "SELECT 1;" 2>/dev/null
if [ $? -ne 0 ]; then
    echo "❌ 无法连接到 MySQL，请检查用户名和密码"
    echo "默认配置: 用户名=root, 密码=root"
    exit 1
fi

# 创建数据库
echo "创建 TMS 数据库..."
mysql -u root -proot -e "CREATE DATABASE IF NOT EXISTS tms;" 2>/dev/null

# 执行数据库迁移
echo "执行数据库迁移..."
if [ -f "migrations/001_initial.sql" ]; then
    mysql -u root -proot tms < migrations/001_initial.sql 2>/dev/null
    echo "✅ 数据库迁移完成"
else
    echo "⚠️  未找到迁移文件"
fi

# 编译项目
echo "编译 TMS 项目..."
cargo build --release
if [ $? -ne 0 ]; then
    echo "❌ 项目编译失败"
    exit 1
fi

echo "✅ 项目编译完成"

# 启动 TMS 服务器
echo "启动 TMS 服务器..."
echo "服务器将在 localhost:50051 上运行"
echo "按 Ctrl+C 停止服务器"
echo ""

cargo run --bin server